Skip to content

Conversation

@hugovk
Copy link
Member

@hugovk hugovk commented Nov 21, 2025

Description

Add new redirects for the latest of each 3.x feature release.

We already have (with current redirects):

This adds some for 3.x. For example (based on local test CMS data):

Unknown versions go back to the downloads page:

(I didn't bother with downloads/latest/python2.x, people can use https://python.org/downloads/latest/python2 or https://www.python.org/downloads/release/python-2718/ or upgrade.)


After merge, we can add an extra downloads column to the downloads-active-releases box in the CMS, something like:

Details
<div class="list-row-headings">
    <span class="release-version">Python version</span>
    <span class="release-status">Maintenance status</span>
    <span class="release-dl">&nbsp;</span>
    <span class="release-start">First released</span>
    <span class="release-end">End of support</span>
    <span class="release-pep">Release schedule</span>
</div>
<ol class="list-row-container menu">
    <li>
        <span class="release-version">3.15</span>
        <span class="release-status"><a href="https://www.python.org/download/pre-releases/">pre-release</a></span>
        <span class="release-dl"><a href="/downloads/latest/python3.15/"><span aria-hidden="true" class="icon-download"></span>Download</a></span>
        <span class="release-start">2026-10-07 (planned)</span>
        <span class="release-end">2031-10</span>
        <span class="release-pep"><a href="https://peps.python.org/pep-0790/">PEP 790</a></span>
    </li>
    <li>
        <span class="release-version">3.14</span>
        <span class="release-status">bugfix</span>
        <span class="release-dl"><a href="/downloads/latest/python3.14/"><span aria-hidden="true" class="icon-download"></span>Download</a></span>
        <span class="release-start">2025-10-07</span>
        <span class="release-end">2030-10</span>
        <span class="release-pep"><a href="https://peps.python.org/pep-0745/">PEP 745</a></span>
    </li>
    <li>
        <span class="release-version">3.13</span>
        <span class="release-status">bugfix</span>
        <span class="release-dl"><a href="/downloads/latest/python3.13/"><span aria-hidden="true" class="icon-download"></span>Download</a></span>
        <span class="release-start">2024-10-07</span>
        <span class="release-end">2029-10</span>
        <span class="release-pep"><a href="https://peps.python.org/pep-0719/">PEP 719</a></span>
    </li>
    <li>
        <span class="release-version">3.12</span>
        <span class="release-status">security</span>
        <span class="release-dl"><a href="/downloads/latest/python3.12/"><span aria-hidden="true" class="icon-download"></span>Download</a></span>
        <span class="release-start">2023-10-02</span>
        <span class="release-end">2028-10</span>
        <span class="release-pep"><a href="https://peps.python.org/pep-0693/">PEP 693</a></span>
    </li>
    <li>
        <span class="release-version">3.11</span>
        <span class="release-status">security</span>
        <span class="release-dl"><a href="/downloads/latest/python3.11/"><span aria-hidden="true" class="icon-download"></span>Download</a></span>
        <span class="release-start">2022-10-24</span>
        <span class="release-end">2027-10</span>
        <span class="release-pep"><a href="https://peps.python.org/pep-0664/">PEP 664</a></span>
    </li>
    <li>
        <span class="release-version">3.10</span>
        <span class="release-status">security</span>
        <span class="release-dl"><a href="/downloads/latest/python3.10/"><span aria-hidden="true" class="icon-download"></span>Download</a></span>
        <span class="release-start">2021-10-04</span>
        <span class="release-end">2026-10</span>
        <span class="release-pep"><a href="https://peps.python.org/pep-0619/">PEP 619</a></span>
    </li>
    <li>
        <span class="release-version">3.9</span>
        <span class="release-status">end of life, last release was <a href="https://www.python.org/downloads/release/python-3925/">3.9.25</a></span>
        <span class="release-dl"><a href="/downloads/latest/python3.9/"><span aria-hidden="true" class="icon-download"></span>Download</a></span>
        <span class="release-start">2020-10-05</span>
        <span class="release-end">2025-10-31</span>
        <span class="release-pep"><a href="https://peps.python.org/pep-0596/">PEP 596</a></span>
    </li>
</ol>

Before:

image

After:

image

(Better yet, we could generate that table as well, but that's for another time.)

Closes

@hugovk hugovk added the enhancement This is an improvement to existing code or configuration label Nov 21, 2025
@gvanrossum
Copy link
Member

Thanks! That page desperately needed some love.

Some additional suggestions (from looking at the screenshot above):

  • Sort the second table in reverse order by (major, manor, bugfix) release -- having the last 3.7 appear before the last 3.10 makes little sense. (Maybe split into multiple tables by (major, minor) to avoid having to scroll through 3.13.1-9 before you see 3.12?)
  • Move the most common downloads (latest of 3.12, 3.13, 3.14) to the very top of the page, as buttons -- that's what all other software does and it saves confusion for folks who are thrown off by having to scroll through several pages of text. It can't just be the latest -- many software still requires 3.12 or sometimes older. It can guess platform and have a little side menu to select another platform.

@JacobCoffee JacobCoffee merged commit c589e2f into python:main Nov 21, 2025
3 checks passed
@hugovk hugovk deleted the latest/python3.x branch November 21, 2025 18:14
@hugovk
Copy link
Member Author

hugovk commented Nov 21, 2025

Thanks! That page desperately needed some love.

Some additional suggestions (from looking at the screenshot above):

  • Sort the second table in reverse order by (major, manor, bugfix) release -- having the last 3.7 appear before the last 3.10 makes little sense. (Maybe split into multiple tables by (major, minor) to avoid having to scroll through 3.13.1-9 before you see 3.12?)

Yes, definitely.

  • Move the most common downloads (latest of 3.12, 3.13, 3.14) to the very top of the page, as buttons -- that's what all other software does and it saves confusion for folks who are thrown off by having to scroll through several pages of text. It can't just be the latest -- many software still requires 3.12 or sometimes older. It can guess platform and have a little side menu to select another platform.

We currently have a single "Download Python 3.14.0" button at the top, and has platform detection so it's the macOS installer for me.

image

We could add one or two more either next to this, or maybe after the "Docker images" link.

I'll open new issues for these.

@hugovk
Copy link
Member Author

hugovk commented Nov 21, 2025

After merge, we can add an extra downloads column to the downloads-active-releases box in the CMS, something like:

Done!

https://www.python.org/downloads/

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement This is an improvement to existing code or configuration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Enhancement: Downloads page: Add latest patch release column Please create separate landing pages per Python version

4 participants